home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1985 May
/
1985-05.d64
/
shell sort_64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
934b
|
30 lines
100 m=8192:gosub500:goto150
110 z=m+int(y/8)*320+int(x/8)*8+(yand7)
120 pokez,peek(z)ort%(xand7):return
130 z=m+int(y/8)*320+int(x/8)*8+(yand7)
140 pokez,peek(z)andnott%(xand7):return
150 fori=0to7:t%(7-i)=2^i:next
160 sys49152:poke53272,peek(53272)or8:poke53265,peek(53265)or32
170 s=99:diml%(s),m%(s)
180 fort=1tos:l%(t)=rnd(0)*s*3+12:x=l%(t)
190 m%(t)=2*t:y=m%(t):gosub110:next:ti$="000000":g=int(s/2)
200 n=0:fori=1tos-g
210 ifl%(i)>l%(i+g)thengosub280:t=l%(i):l%(i)=l%(i+g):l%(i+g)=t:n=1
220 next:ifn=1then200
230 g=int(g/2):ifg>=1then200
240 t$=ti$:poke198,0
250 geta$:ifa$=""then250
260 poke53265,peek(53265)and223:print"[147]":poke53272,21
270 prints"items sorted in "mid$(t$,3,2)":"right$(t$,2)".":end
280 y=m%(i):x=l%(i):gosub130:y=m%(i+g):x=l%(i+g):gosub130
290 y=m%(i):x=l%(i+g):gosub110:y=m%(i+g):x=l%(i):gosub110:return
500 x=0:fori=49152to49190:reada:x=x+a:pokei,a:next
510 ifx<>6678thenprint"error in data statements.":stop
520 return
530 data 169,32,133,252,162,32,169
540 data 0,168,145,251,200,208,251
550 data 230,252,202,208,246,169,4
560 data 133,254,170,160,0,169,16
570 data 145,253,200,208,251,230,254
580 data 202,208,246,96